package com.infore.common.model.entity;

import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.infore.common.base.BaseModel;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;

/**
 * <p>
 * 数据源
 * </p>
 *
 * @author lijh
 * @since 2022-12-20
 */
@TableName("t_base_datasource")
@Data
public class TBaseDatasource extends BaseModel<TBaseDatasource> {

    private static final long serialVersionUID = 1L;

    /**
     * ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    /**
     * 业务库编码
     */
    @TableField("database_code")
    private String databaseCode;
    /**
     * 业务库显示名称
     */
    @TableField("database_name")
    private String databaseName;
    /**
     * MYSQL/ORACLE/SQLSERVER2
     */
    @TableField("database_type")
    private String databaseType;
    /**
     * JDBC驱动
     */
//    @TableField("driver_class_name")
//    private String driverClassName;
    /**
     * JDBC连接地址
     */
    @TableField("jdbc_url")
    private String jdbcUrl;
    /**
     * 业务库名称
     */
    @TableField("database_schema")
    private String databaseSchema;
    /**
     * 用户名
     */
    @TableField("jdbc_username")
    private String jdbcUsername;
    /**
     * 密码(已加密)
     */
    @TableField("jdbc_password")
    private String jdbcPassword;
    /**
     * 创建人ID
     */
    @TableField("create_userId")
    private String createUserid;
    /**
     * 创建时间
     */
    @TableField("create_time")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")//从数据库读出日期格式时，进行转换的规则
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")//接受从前端传入的日期格式，映射到java类日期属性的规则
    private Date createTime;

    /**
     * 逻辑删除：0_未删除，1_已删除
     */
    @TableField("del_state")
    private Integer delState;

    @Override
    protected Serializable pkVal() {
        return this.id;
    }

}
